<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.5"/>
<title>Faiss: faiss::IDSelectorBatch Struct Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Faiss
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.5 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.html"><span>Main&#160;Page</span></a></li>
      <li><a href="namespaces.html"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.html"><span>Classes</span></a></li>
      <li><a href="files.html"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.html"><span>Class&#160;List</span></a></li>
      <li><a href="classes.html"><span>Class&#160;Index</span></a></li>
      <li><a href="hierarchy.html"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.html"><span>Class&#160;Members</span></a></li>
    </ul>
  </div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Classes</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Namespaces</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Friends</a></div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="namespacefaiss.html">faiss</a></li><li class="navelem"><a class="el" href="structfaiss_1_1IDSelectorBatch.html">IDSelectorBatch</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="#pub-attribs">Public Attributes</a> &#124;
<a href="structfaiss_1_1IDSelectorBatch-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">faiss::IDSelectorBatch Struct Reference</div>  </div>
</div><!--header-->
<div class="contents">

<p><code>#include &lt;<a class="el" href="AuxIndexStructures_8h_source.html">AuxIndexStructures.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for faiss::IDSelectorBatch:</div>
<div class="dyncontent">
 <div class="center">
  <img src="structfaiss_1_1IDSelectorBatch.png" usemap="#faiss::IDSelectorBatch_map" alt=""/>
  <map id="faiss::IDSelectorBatch_map" name="faiss::IDSelectorBatch_map">
<area href="structfaiss_1_1IDSelector.html" alt="faiss::IDSelector" shape="rect" coords="0,0,135,24"/>
</map>
 </div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:af4cb2ab3df24bf660a840b7b5888d4e3"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="af4cb2ab3df24bf660a840b7b5888d4e3"></a>
typedef unsigned char&#160;</td><td class="memItemRight" valign="bottom"><b>uint8_t</b></td></tr>
<tr class="separator:af4cb2ab3df24bf660a840b7b5888d4e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_structfaiss_1_1IDSelector"><td colspan="2" onclick="javascript:toggleInherit('pub_types_structfaiss_1_1IDSelector')"><img src="closed.png" alt="-"/>&#160;Public Types inherited from <a class="el" href="structfaiss_1_1IDSelector.html">faiss::IDSelector</a></td></tr>
<tr class="memitem:a73377a3a85882a0b7dabcde5723660d0 inherit pub_types_structfaiss_1_1IDSelector"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a73377a3a85882a0b7dabcde5723660d0"></a>
typedef <a class="el" href="structfaiss_1_1Index.html#ad3f0d3071f987baabbdd3da4500c87ea">Index::idx_t</a>&#160;</td><td class="memItemRight" valign="bottom"><b>idx_t</b></td></tr>
<tr class="separator:a73377a3a85882a0b7dabcde5723660d0 inherit pub_types_structfaiss_1_1IDSelector"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:acf619d6e853b60dd4fc57bf0b11f2c36"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="acf619d6e853b60dd4fc57bf0b11f2c36"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>IDSelectorBatch</b> (long n, const idx_t *indices)</td></tr>
<tr class="separator:acf619d6e853b60dd4fc57bf0b11f2c36"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a07595060976071029f1ae6222086cfc1"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a07595060976071029f1ae6222086cfc1"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>is_member</b> (idx_t id) const override</td></tr>
<tr class="separator:a07595060976071029f1ae6222086cfc1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
Public Attributes</h2></td></tr>
<tr class="memitem:ac97cdc436506d9b7c95c5be7c81911c6"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ac97cdc436506d9b7c95c5be7c81911c6"></a>
std::unordered_set&lt; idx_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>set</b></td></tr>
<tr class="separator:ac97cdc436506d9b7c95c5be7c81911c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad564667b444097675dab5c79912224df"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="ad564667b444097675dab5c79912224df"></a>
std::vector&lt; uint8_t &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>bloom</b></td></tr>
<tr class="separator:ad564667b444097675dab5c79912224df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaea3478efd884f2697a30099d512348c"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="aaea3478efd884f2697a30099d512348c"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>nbits</b></td></tr>
<tr class="separator:aaea3478efd884f2697a30099d512348c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7191bbbf786cc9e8eda1aebaac81e966"><td class="memItemLeft" align="right" valign="top"><a class="anchor" id="a7191bbbf786cc9e8eda1aebaac81e966"></a>
idx_t&#160;</td><td class="memItemRight" valign="bottom"><b>mask</b></td></tr>
<tr class="separator:a7191bbbf786cc9e8eda1aebaac81e966"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Remove ids from a set. Repetitions of ids in the indices set passed to the constructor does not hurt performance. The hash function used for the bloom filter and GCC's implementation of unordered_set are just the least significant bits of the id. This works fine for random ids or ids in sequences but will produce many hash collisions if lsb's are always the same </p>

<p>Definition at line <a class="el" href="AuxIndexStructures_8h_source.html#l00078">78</a> of file <a class="el" href="AuxIndexStructures_8h_source.html">AuxIndexStructures.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following files:<ul>
<li>/data/users/hoss/faiss/<a class="el" href="AuxIndexStructures_8h_source.html">AuxIndexStructures.h</a></li>
<li>/data/users/hoss/faiss/<a class="el" href="AuxIndexStructures_8cpp_source.html">AuxIndexStructures.cpp</a></li>
</ul>
</div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
Generated by &#160;<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.8.5
</small></address>
</body>
</html>
